/*
 * To change this template, choose Tools | Templates aaaaaa
 * and open the template in the editor. bbbbbbb
 */
package symulacja;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.logging.Level;
import java.util.logging.Logger;


public class Symulacja extends JFrame {

   public Symulacja()
    {
        initComponents();
    }
    private void initComponents() {
        
        
        this.setBounds(100, 0, 1100, 750);
        this.setTitle("Teowis application-TeoSpice-OBWOD RLC");
        this.getContentPane().setBackground(Color.WHITE);
       
        //Ustawienie Słuchaczy
        
        
        wyczysc.addActionListener(new ActionListener(){

            @Override
            public void actionPerformed(ActionEvent e) {
                Rysowanie.flaga=false;
                Wylacznik.flaga=false;
            //    Wylacznik.aktualizuj();
                System.out.println("Ustawilem flage na wartosc: "+Rysowanie.flaga);
                rysowanie.wyczysc();
                rysowanie.aktualizuj();
                rysowanie.wyczysc();
            }
            
        }); 
        //Ustawienia na ekranie
        panelMenu.setBackground(kolorMenu);
        panelMenu.setLayout(rozmieszczenie);
        szefRozmieszczenia.insets=new Insets(20,0,20,0);

        //Formularz rezystancji
        szefRozmieszczenia.gridx=0;
        szefRozmieszczenia.gridy=0;
        rezystancja.setForeground(Color.white);
        panelMenu.add(rezystancja, szefRozmieszczenia);
        szefRozmieszczenia.gridx=1;
        szefRozmieszczenia.gridy=0;
        panelMenu.add(resText, szefRozmieszczenia);
        resText.addKeyListener(new SluchaczTextField());
        szefRozmieszczenia.gridx=2;
        szefRozmieszczenia.gridy=0;
        rez.setForeground(Color.white);
        panelMenu.add(rez, szefRozmieszczenia);
        
        //Formularz indukcji
        szefRozmieszczenia.gridx=3;
        szefRozmieszczenia.gridy=0;
        inductance.setForeground(Color.white);
        panelMenu.add(inductance, szefRozmieszczenia);
        szefRozmieszczenia.gridx=4;
        szefRozmieszczenia.gridy=0;
        indText.addKeyListener(new SluchaczTextField());
        panelMenu.add(indText, szefRozmieszczenia);
        szefRozmieszczenia.gridx=5;
        szefRozmieszczenia.gridy=0;
        ind.setForeground(Color.white);
        panelMenu.add(ind, szefRozmieszczenia);
        
        //Formularz Capacitance
        szefRozmieszczenia.gridx=6;
        szefRozmieszczenia.gridy=0;
        capacitance.setForeground(Color.white);
        panelMenu.add(capacitance, szefRozmieszczenia);
        szefRozmieszczenia.gridx=7;
        szefRozmieszczenia.gridy=0;
        capText.addKeyListener(new SluchaczTextField());
        panelMenu.add(capText, szefRozmieszczenia);
        szefRozmieszczenia.gridx=8;
        szefRozmieszczenia.gridy=0;
        cap.setForeground(Color.white);
        panelMenu.add(cap, szefRozmieszczenia);
        
        //Formularz Napiecia
        szefRozmieszczenia.gridx=9;
        szefRozmieszczenia.gridy=0;
        napiecie.setForeground(Color.white);
        panelMenu.add(napiecie, szefRozmieszczenia);
        szefRozmieszczenia.gridx=10;
        szefRozmieszczenia.gridy=0;
        napText.addKeyListener(new SluchaczTextField());
        panelMenu.add(napText, szefRozmieszczenia);
        szefRozmieszczenia.gridx=11;
        szefRozmieszczenia.gridy=0;
        nap.setForeground(Color.white);
        panelMenu.add(nap, szefRozmieszczenia);
        
        //Panel informacyjny
        informacyjny.setBackground(kolorMenu);
        informacyjny.setForeground(kolorCzcionkiMenu);
        informacyjny.setLayout(rozmieszczenie);
        szefRozmieszczenia.gridx=0;
        szefRozmieszczenia.gridy=0;
        impedancja.setForeground(kolorCzcionkiMenu);
        informacyjny.add(impedancja, szefRozmieszczenia);
        szefRozmieszczenia.gridx=0;
        szefRozmieszczenia.gridy=1;
        prad.setForeground(kolorCzcionkiMenu);
        informacyjny.add(prad, szefRozmieszczenia);
        
        //przyciski na dole
        //gridx-odpowiada za to w której kolumnie będzie przycisk
        //gridy-odpowiada za to w którym wierszu będzie dany komponent
         szefRozmieszczenia.insets=new Insets(20,10,20,0);
          szefRozmieszczenia.gridx=1;
          szefRozmieszczenia.gridy=1;       
          start.setBackground(kolorPrzyciskow);
          start.setForeground(kolorCzcionkiMenu);
          start.addActionListener(new Sluchacz());
          panelMenu.add(start, szefRozmieszczenia);
          szefRozmieszczenia.gridx=2;
          szefRozmieszczenia.gridy=1;
          wyczysc.setBackground(kolorPrzyciskow);
          wyczysc.setForeground(kolorCzcionkiMenu);
          panelMenu.add(wyczysc, szefRozmieszczenia);       
          szefRozmieszczenia.gridx=3;
          szefRozmieszczenia.gridy=1; 
          uwaga.setForeground(Color.RED);
          uwaga.setBackground(Color.BLACK);
          panelMenu.add(uwaga, szefRozmieszczenia);
          rysowanie.add(wykres, BorderLayout.EAST);
          
          
        
        
        
        this.getContentPane().add(panelMenu, BorderLayout.SOUTH);
        this.getContentPane().add(rysowanie, BorderLayout.CENTER);
        this.getContentPane().add(informacyjny,  BorderLayout.NORTH);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }//koniec InitComponents
    
    
    // zmienne do Initcomponents
    private JPanel panelMenu=new JPanel();
    public static Rysowanie rysowanie=new Rysowanie();
    private GridBagLayout rozmieszczenie=new GridBagLayout();
    private GridBagConstraints szefRozmieszczenia=new GridBagConstraints();
    private JButton start=new JButton("Załącz");
    private JButton stop=new JButton("Wyłącz");
    private JButton wyczysc=new JButton("Wylacz");
    private Color kolorPrzyciskow=Color.black;
    private Color kolorCzcionkiMenu=Color.white;
    private Color kolorMenu=Color.DARK_GRAY;
    private JLabel rezystancja=new JLabel("R= ");
    private JLabel inductance=new JLabel("L= ");
    private JLabel capacitance=new JLabel("C= ");
    private JLabel napiecie=new JLabel("V= ");
    private JLabel rez=new JLabel(" Ohm        ");
    private JLabel ind=new JLabel(" H          ");
    private JLabel cap=new JLabel(" F          ");
    private JLabel nap=new JLabel(" V          ");
    public static JLabel uwaga=new JLabel("");
    public static JTextField resText=new JTextField(5);
    public static JTextField indText=new JTextField(5);
    public static JTextField capText=new JTextField(5);
    public static JTextField napText=new JTextField(5);
    private JPanel informacyjny=new JPanel();
    public static double impe=0;
    public static double nate=0; 
    public static JLabel impedancja=new JLabel("Z=sqrt(R^2+(L-C)^2)="+impe+" Ohm");
    public static JLabel prad=new JLabel("I=|V|/|Z|="+nate+" A");
    public Wykres wykres=new Wykres("");
    
           
    
    public static void main(String[] args) {
        new Symulacja().setVisible(true);
    }

   
}//Koniec programu







class SluchaczTextField implements KeyListener
{

    @Override
    public void keyTyped(KeyEvent e) {
        if(e.getKeyChar()>'9' || e.getKeyChar()<'0') e.consume();
    }

    @Override
    public void keyPressed(KeyEvent e) {
        
    }

    @Override
    public void keyReleased(KeyEvent e) {
        
    }
    
}






